package cn.pasyy.entity;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class WebNotesExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public WebNotesExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andUserIdIsNull() {
            addCriterion("user_Id is null");
            return (Criteria) this;
        }

        public Criteria andUserIdIsNotNull() {
            addCriterion("user_Id is not null");
            return (Criteria) this;
        }

        public Criteria andUserIdEqualTo(Integer value) {
            addCriterion("user_Id =", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdNotEqualTo(Integer value) {
            addCriterion("user_Id <>", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdGreaterThan(Integer value) {
            addCriterion("user_Id >", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("user_Id >=", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdLessThan(Integer value) {
            addCriterion("user_Id <", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdLessThanOrEqualTo(Integer value) {
            addCriterion("user_Id <=", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdIn(List<Integer> values) {
            addCriterion("user_Id in", values, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdNotIn(List<Integer> values) {
            addCriterion("user_Id not in", values, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdBetween(Integer value1, Integer value2) {
            addCriterion("user_Id between", value1, value2, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdNotBetween(Integer value1, Integer value2) {
            addCriterion("user_Id not between", value1, value2, "userId");
            return (Criteria) this;
        }

        public Criteria andNotesStarttimeIsNull() {
            addCriterion("notes_StartTime is null");
            return (Criteria) this;
        }

        public Criteria andNotesStarttimeIsNotNull() {
            addCriterion("notes_StartTime is not null");
            return (Criteria) this;
        }

        public Criteria andNotesStarttimeEqualTo(Date value) {
            addCriterion("notes_StartTime =", value, "notesStarttime");
            return (Criteria) this;
        }

        public Criteria andNotesStarttimeNotEqualTo(Date value) {
            addCriterion("notes_StartTime <>", value, "notesStarttime");
            return (Criteria) this;
        }

        public Criteria andNotesStarttimeGreaterThan(Date value) {
            addCriterion("notes_StartTime >", value, "notesStarttime");
            return (Criteria) this;
        }

        public Criteria andNotesStarttimeGreaterThanOrEqualTo(Date value) {
            addCriterion("notes_StartTime >=", value, "notesStarttime");
            return (Criteria) this;
        }

        public Criteria andNotesStarttimeLessThan(Date value) {
            addCriterion("notes_StartTime <", value, "notesStarttime");
            return (Criteria) this;
        }

        public Criteria andNotesStarttimeLessThanOrEqualTo(Date value) {
            addCriterion("notes_StartTime <=", value, "notesStarttime");
            return (Criteria) this;
        }

        public Criteria andNotesStarttimeIn(List<Date> values) {
            addCriterion("notes_StartTime in", values, "notesStarttime");
            return (Criteria) this;
        }

        public Criteria andNotesStarttimeNotIn(List<Date> values) {
            addCriterion("notes_StartTime not in", values, "notesStarttime");
            return (Criteria) this;
        }

        public Criteria andNotesStarttimeBetween(Date value1, Date value2) {
            addCriterion("notes_StartTime between", value1, value2, "notesStarttime");
            return (Criteria) this;
        }

        public Criteria andNotesStarttimeNotBetween(Date value1, Date value2) {
            addCriterion("notes_StartTime not between", value1, value2, "notesStarttime");
            return (Criteria) this;
        }

        public Criteria andNotesLastreviewtimeIsNull() {
            addCriterion("notes_LastReviewTime is null");
            return (Criteria) this;
        }

        public Criteria andNotesLastreviewtimeIsNotNull() {
            addCriterion("notes_LastReviewTime is not null");
            return (Criteria) this;
        }

        public Criteria andNotesLastreviewtimeEqualTo(Date value) {
            addCriterion("notes_LastReviewTime =", value, "notesLastreviewtime");
            return (Criteria) this;
        }

        public Criteria andNotesLastreviewtimeNotEqualTo(Date value) {
            addCriterion("notes_LastReviewTime <>", value, "notesLastreviewtime");
            return (Criteria) this;
        }

        public Criteria andNotesLastreviewtimeGreaterThan(Date value) {
            addCriterion("notes_LastReviewTime >", value, "notesLastreviewtime");
            return (Criteria) this;
        }

        public Criteria andNotesLastreviewtimeGreaterThanOrEqualTo(Date value) {
            addCriterion("notes_LastReviewTime >=", value, "notesLastreviewtime");
            return (Criteria) this;
        }

        public Criteria andNotesLastreviewtimeLessThan(Date value) {
            addCriterion("notes_LastReviewTime <", value, "notesLastreviewtime");
            return (Criteria) this;
        }

        public Criteria andNotesLastreviewtimeLessThanOrEqualTo(Date value) {
            addCriterion("notes_LastReviewTime <=", value, "notesLastreviewtime");
            return (Criteria) this;
        }

        public Criteria andNotesLastreviewtimeIn(List<Date> values) {
            addCriterion("notes_LastReviewTime in", values, "notesLastreviewtime");
            return (Criteria) this;
        }

        public Criteria andNotesLastreviewtimeNotIn(List<Date> values) {
            addCriterion("notes_LastReviewTime not in", values, "notesLastreviewtime");
            return (Criteria) this;
        }

        public Criteria andNotesLastreviewtimeBetween(Date value1, Date value2) {
            addCriterion("notes_LastReviewTime between", value1, value2, "notesLastreviewtime");
            return (Criteria) this;
        }

        public Criteria andNotesLastreviewtimeNotBetween(Date value1, Date value2) {
            addCriterion("notes_LastReviewTime not between", value1, value2, "notesLastreviewtime");
            return (Criteria) this;
        }

        public Criteria andNotesLikesIsNull() {
            addCriterion("notes_likes is null");
            return (Criteria) this;
        }

        public Criteria andNotesLikesIsNotNull() {
            addCriterion("notes_likes is not null");
            return (Criteria) this;
        }

        public Criteria andNotesLikesEqualTo(Integer value) {
            addCriterion("notes_likes =", value, "notesLikes");
            return (Criteria) this;
        }

        public Criteria andNotesLikesNotEqualTo(Integer value) {
            addCriterion("notes_likes <>", value, "notesLikes");
            return (Criteria) this;
        }

        public Criteria andNotesLikesGreaterThan(Integer value) {
            addCriterion("notes_likes >", value, "notesLikes");
            return (Criteria) this;
        }

        public Criteria andNotesLikesGreaterThanOrEqualTo(Integer value) {
            addCriterion("notes_likes >=", value, "notesLikes");
            return (Criteria) this;
        }

        public Criteria andNotesLikesLessThan(Integer value) {
            addCriterion("notes_likes <", value, "notesLikes");
            return (Criteria) this;
        }

        public Criteria andNotesLikesLessThanOrEqualTo(Integer value) {
            addCriterion("notes_likes <=", value, "notesLikes");
            return (Criteria) this;
        }

        public Criteria andNotesLikesIn(List<Integer> values) {
            addCriterion("notes_likes in", values, "notesLikes");
            return (Criteria) this;
        }

        public Criteria andNotesLikesNotIn(List<Integer> values) {
            addCriterion("notes_likes not in", values, "notesLikes");
            return (Criteria) this;
        }

        public Criteria andNotesLikesBetween(Integer value1, Integer value2) {
            addCriterion("notes_likes between", value1, value2, "notesLikes");
            return (Criteria) this;
        }

        public Criteria andNotesLikesNotBetween(Integer value1, Integer value2) {
            addCriterion("notes_likes not between", value1, value2, "notesLikes");
            return (Criteria) this;
        }

        public Criteria andNotesReceivepointsIsNull() {
            addCriterion("notes_receivePoints is null");
            return (Criteria) this;
        }

        public Criteria andNotesReceivepointsIsNotNull() {
            addCriterion("notes_receivePoints is not null");
            return (Criteria) this;
        }

        public Criteria andNotesReceivepointsEqualTo(Integer value) {
            addCriterion("notes_receivePoints =", value, "notesReceivepoints");
            return (Criteria) this;
        }

        public Criteria andNotesReceivepointsNotEqualTo(Integer value) {
            addCriterion("notes_receivePoints <>", value, "notesReceivepoints");
            return (Criteria) this;
        }

        public Criteria andNotesReceivepointsGreaterThan(Integer value) {
            addCriterion("notes_receivePoints >", value, "notesReceivepoints");
            return (Criteria) this;
        }

        public Criteria andNotesReceivepointsGreaterThanOrEqualTo(Integer value) {
            addCriterion("notes_receivePoints >=", value, "notesReceivepoints");
            return (Criteria) this;
        }

        public Criteria andNotesReceivepointsLessThan(Integer value) {
            addCriterion("notes_receivePoints <", value, "notesReceivepoints");
            return (Criteria) this;
        }

        public Criteria andNotesReceivepointsLessThanOrEqualTo(Integer value) {
            addCriterion("notes_receivePoints <=", value, "notesReceivepoints");
            return (Criteria) this;
        }

        public Criteria andNotesReceivepointsIn(List<Integer> values) {
            addCriterion("notes_receivePoints in", values, "notesReceivepoints");
            return (Criteria) this;
        }

        public Criteria andNotesReceivepointsNotIn(List<Integer> values) {
            addCriterion("notes_receivePoints not in", values, "notesReceivepoints");
            return (Criteria) this;
        }

        public Criteria andNotesReceivepointsBetween(Integer value1, Integer value2) {
            addCriterion("notes_receivePoints between", value1, value2, "notesReceivepoints");
            return (Criteria) this;
        }

        public Criteria andNotesReceivepointsNotBetween(Integer value1, Integer value2) {
            addCriterion("notes_receivePoints not between", value1, value2, "notesReceivepoints");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}